2 SP$=" " 5 REM**LOAD "GRADES 2",8 10 REM**GRADE AVERAGING*SORT ROUTINES 20 REM**JOHN L EUBANKS,PH.D 30 REM**PINEVILLE, LOUISIANA 71360 40 REM** 50 REM**03/13/84 60 REM** 65 PRINT"[147]" 68 PRINT"**********[158]TEACHER'S GRADEBOOK [146]**********[159]" 70 PRINT"" 73 PRINT"  VERSION 2.0 [146][159]" 75 PRINT"" 80 PRINT"  JOHN L EUBANKS,PH.D[146][159]" 82 PRINT:PRINT:PRINT:PRINT 85 FOR I=1TO2000 :NEXTI:PRINT"[147]" 100 PRINT"YOU MAY AVERAGE ANY NUMBER OF GRADES " 110 PRINT"FOR ANY NUMBER OF STUDENTS AND " 115 PRINT"CALCULATE THE LETTER GRADES FOR YOUR[146] " 120 PRINT"GRADING SYSTEM." 130 PRINT"IF YOU WISH TO MAKE A HARD COPY[146]" 135 PRINT"CONNECT YOUR PRINTER NOW. [146]" 140 PRINT"" 150 PRINT"[158]THIS PROGRAM DOES NOT SAVE TO DISK.[146]" 153 PRINT"YOU SHOULD SEND DATA TO THE PRINTER[146]" 155 PRINT"OR COPY THE DATA BY HAND BEFORE [146]" 157 PRINT"TURNING OFF THE COMPUTER. [146][159]" 158 PRINT"" 165 PRINT 167 DIM N$(200),G(50),A(200),GL$(200) 170 INPUT"PRESS RETURN TO BEGIN";R$ 180 IF R$="" THEN 300 290 REM**INPUT VARIABLE LENGTH AND DIM 300 PRINT"[147]" 320 INPUT"ENTER THE NUMBER OF STUDENTS";N%:PRINT 340 INPUT"HOW MANY GRADES PER STUDENT ";NG 343 PRINT 360 PRINT"YOU MAY ENTER THE NAMES OF";N%;"STUDENTS" 365 PRINT"WITH A MAXIMUM OF";NG;"GRADES PER STUDENT.":PRINT 370 INPUT"PRESS RETURN TO CONTINUE";C$ 375 IF C$="" THEN 400 400 PRINT"[147]" 490 REM**INPUT STUDENT NAMES 500 FORX=1TON%:PRINT"[147]" 510 PRINT"WHEN YOU ARE ASKED,TYPE THE" 520 PRINT"STUDENT'S NAME--LAST FIRST" 530 PRINT"[158]DO NOT USE COMMAS IN ENTRY[159][146]" 540 PRINT"" 550 PRINT"WHAT IS STUDENT'S NAME?":PRINT 560 INPUT N$(X): PRINT 570 REM**INPUT GRADES 580 INPUT"HOW MANY GRADES FOR [146][158]THIS[146][159] STUDENT";SG:PRINT 595 IF SG=NG THEN PRINT"YOU CAN ONLY ENTER";NG;"GRADES" 602 PRINT"":POKE198,0:WAIT198,1:GOTO580 603 LET S=0 605 REM**INPUT GRADES 610 FOR Y=1TOSG:PRINT"[147]" 620 PRINT"WHAT IS STUDENT'S GRADE #"Y" ?" 625 INPUT G(Y) 635 REM**CALCULATE GRADE AVERAGE 640 S=G(Y)+S 650 NEXT Y 660 A(X)=S/SG:A(X)=INT(A(X)+.5) 670 Z=Z+1 680 NEXT X: REM**MAIN LOOP RETURN 700 REM**INPUT LETTER GRADE VALUES 710 PRINT"[147]" 730 PRINT"ENTER THE (NUMERICAL) LOWER" 740 PRINT"LIMITS FOR EACH LETTER GRADE":PRINT 750 INPUT"LOWER LIMIT OF 'A'";B:PRINT 760 INPUT"LOWER LIMIT OF 'B'";C:PRINT 770 INPUT"LOWER LIMIT OF 'C'";D:PRINT 780 INPUT"LOWER LIMIT OF 'D'";E:PRINT 785 REM**CALCULATE UPPER LIMITS 790 LET BL=ABS(B-1):LET CL=ABS(C-1):LET DL=ABS(D-1):LET EL=ABS(E-1) 840 REM**DISPLAY GRADE VALUES 850 PRINT"[147]":PRINT"YOUR GRADING SYSTEM IS: [146][159]" 860 PRINT"[158]A=";B;"AND ABOVE" 870 PRINT"B=";C;"TO";BL 880 PRINT"C=";D;"TO";CL 890 PRINT"D=";E;"TO";DL 900 PRINT"F=";EL;"AND BELOW[159]":PRINT:PRINT 902 INPUT"PRESS RETURN TO CONTINUE";V$ 905 IF V$="" THEN 910 910 REM**CONVERT NUM AVERAGES TO LETTERS 915 FOR X=1TON% 920 IF A(X) =>B THEN GL$(X) ="A" 930 IF A(X) =>C AND A(X) D AND A(X) E AND A(X) 20 THEN GOSUB 7000 1040 PRINT N$(X);TAB(26);A(X);TAB(36);GL$(X) 1050 NEXTX 1070 PRINT 1080 REM** 1990 REM**HARD COPY OPTION 2000 PRINT"TYPE 'P' TO SEND TO PRINTER" 2005 PRINT"TYPE 'Q' TO QUIT" 2010 INPUT"ENTER 'P' OR 'Q'";P$ 2020 IF P$="P" THEN 2060 2030 GOTO3020 2050 REM**OUTPUT PRINT LOOP FOR PRINTER 2060 OPEN 4,4 :CMD4 2070 PRINT"STUDENT NAME","AVERAGE","GRADE" 2080 PRINT:PRINT 2090 FOR X=1 TO Z 3000 PRINT N$(X)LEFT$(SP$,24-LEN(N$(X)))A(X)LEFT$(SP$,16-LEN(STR$(A(X))))GL$(X) 3010 NEXT X:PRINT#4:CLOSE4 3020 REM NOW IS THE TIME TO END 3030 GOTO63000 3035 : 3040 : 3050 REM**ARRANGE BY NAME**BUBBLE SORT 3060 T=N%-1 3070 FLIP=0:FOR S=1TOT:IFN$(S)<=N$(S+1)THEN 3130 3080 SWITCH$=N$(S):HA=A(S):HG$=GL$(S) 3090 N$(S)=N$(S+1):A(S)=A(S+1):GL$(S)=GL$(S+1) 3100 N$(S+1)=SWITCH$:A(S+1)=HA:GL$(S+1)=HG$ 3110 FLIP=1:T=S 3130 NEXT S:IF FLIP=1 THEN3070 3140 GOTO 1000 4990 REM**ARRANGE BY GRADES*BUBBLE SORT 5000 T=N%-1 5010 FLIP=0:FOR S=1TO T:IF A(S)>=A(S+1) THEN 5060 5020 HA=A(S):SWITCH$=N$(S):HG$=GL$(S) 5030 A(S)=A(S+1):N$(S)=N$(S+1):GL$(S)=GL$(S+1) 5040 A(S+1)=HA:N$(S+1)=SWITCH$:GL$(S+1)=HG$ 5050 FLIP=1:T=S 5060 NEXT S:IF FLIP=1 THEN 5010 5070 RETURN 6990 REM**STOP WHEN SCREEN FILLS 7000 PRINT CHR$(18);"HIT ANY KEY TO CONTINUE" 7010 GET AN$:IF AN$="" THEN 7010 7020 F=0:PRINT CHR$(146) 7030 RETURN 63000 PRINT"[147][144]WANT TO TRY AGAIN? (Y/N)":POKE198,0:WAIT198,1:GETZ$ 63002 IFZ$<>"Y"ANDZ$<>"N"THEN63000 63004 IFZ$="Y"THEN170 63005 PRINT"[147]LOAD"CHR$(34)"PAYLOAD"CHR$(34)",8":PRINT"RUN" 63010 POKE631,13:POKE632,13:POKE198,2:END